In pixel-based display systems, visual artifacts such as jagged lines are due to an effect known as aliasing. Aliasing occurs because of the discrete nature of pixels, the smallest picture element addressable on a display screen. Pixels are arranged on a display screen as an rectangular array of points. Aliasing artifacts can occur when an entire pixel is given a light intensity or color based upon an insufficient sample of points within that pixel. Techniques to minimize aliasing artifacts are referred to as antialiasing.
One antialiasing technique is supersampling. Supersampling involves taking more samples of an image than there are pixels to be displayed. Such samples are taken at subpixel positions within each pixel. The color and intensity displayed for each pixel comes from combining the subpixel samples.
The quality of the antialiasing obtained by supersampling is affected by the degree to which pixels are divided into subpixels, and the number of subpixels that are sampled for each pixel. Generally, the more subpixels per pixel, the finer is the resolution of the image; and the more subpixels per pixel sampled, the better is the antialiasing effect. An 8.times.8 grid of subpixels offers four times as many possible sample locations than a 4.times.4 grid of subpixels. Also, sampling all sixty-four subpixels of an 8.times.8 grid provides sixty-four times more pixel data than sampling only one of the sixty-four subpixel sites.
However, sampling at every subpixel position, referred to as full scene supersampling, is costly to implement. Each subpixel sample requires memory, and consumes memory bandwidth. Also, the amount of computation needed to derive the displayed pixel value increases with the number of samples taken. Accordingly, the problems of full scene supersampling have led to sparse supersampling in which only a portion of the subpixel positions are sampled. In the 8.times.8 grid, for example, only eight of the sixty-four subpixels might be sampled to produce a display value for a pixel.
Eight subpixel samples per pixel still take up considerable memory. If each pixel needs eight bytes per sample, then eight samples need sixty-four bytes. For a 1600.times.1200 pixel display, this would require 123 Mbytes of memory.
Thus, there is a need for a method and an apparatus that reduce the memory capacity and bandwidth requirements associated with prior art antialiasing techniques while effectively reducing aliasing artifacts in images.